//@author A0101032L

#ifndef _STATUSMESSAGES_H_
#define _STATUSMESSAGES_H_

/*
*This class is mainly for definition of status code, it also includes some command header file
*names.
*/

#include <vector>
#include <string>

using namespace std;

enum STATUS_CODE_SET_OVERALL{
	OVERALL_SUCCESS,
	OVERALL_ERROR,
	OVERALL_EXIT,
};

enum STATUS_CODE_SET_SUCCESS{
	SUCCESS_ADD = OVERALL_EXIT + 1,
	SUCCESS_REMOVE,
	SUCCESS_RENAME,
	SUCCESS_RESCHEDULE,
	SUCCESS_RELOCATE,
	SUCCESS_MARK,
	SUCCESS_UNMARK,
	SUCCESS_SAVE,
	SUCCESS_SEARCH_EMPTY_SLOTS,
	SUCCESS_SEARCH_RANGE,
	SUCCESS_SEARCH,
	SUCCESS_LOAD,
	SUCCESS_INTERPRETER,
	SUCCESS_UNDO,
	SUCCESS_REDO,
	SUCCESS_DISPLAY,
	SUCCESS_HELP,
	SUCCESS_CLEAR,

	
};

enum STATUS_CODE_SET_WARNING{	
	WARNING_DISPLAY_NO_RESULT = SUCCESS_CLEAR + 1,
	WARNING_MARK_NO_CHANGE,
	WARNING_UNMARK_NO_CHANGE,
	WARNING_SEARCH_NO_RESULT,
	WARNING_SEARCH_NO_SLOTS,
	WARNING_UNDO_NO_COMMAND,
	WARNING_REDO_NO_COMMAND,	
	WARNING_LOAD_EMPTY_FILE,
	WARNING_WRONG_INPUT,
	WARNING_DISPLAY_TASK,
	WARNING_CLEAR,
	WARNING_RENAME_CLASH,

};

enum STATUS_CODE_SET_ERROR{
	ERROR_ADD = WARNING_RENAME_CLASH + 1,
	ERROR_ADD_DUPLICATE,
	ERROR_REMOVE,
	ERROR_DISPLAY,
	ERROR_MARK,
	ERROR_UNMARK,
	ERROR_SEARCH,
	ERROR_UNDO,
	ERROR_REDO,
	ERROR_CLEAR,
	ERROR_EMPTY_INPUT,  //after stripped out all the spaces from beginning and ending, the input becomes empty
	ERROR_INTERPRETER_FORMAT,  //input format for title is wrong
	ERROR_INTERPRETER_DATETIME_FORMAT,  //input format for date time is wrong, including logic error and date time cannot be interpreted
	ERROR_INTERPRETER_START_TIME_BUT_NO_END_TIME,
	ERROR_INTERPRETER_PARAMETER_OVERLOAD_TIME,
	ERROR_ENDTIME_BEFORE_STARTTIME,
	ERROR_INTERPRETER_DATETIME_INVALID,
	ERROR_SEARCH_TIME_EMPTY,
	ERROR_LOAD_OPENFILE,
	ERROR_LOAD_CORRUPTED_DATA,
	ERROR_SAVE_SAVEFILE,
	ERROR_RENAME,
	ERROR_RENAME_NO_NEW_NAME,
	ERROR_RESCHEDULE,
	ERROR_RELOCATE,


};


#endif
